package jjn.round1;

/**
 * @author Jjn
 * @since 2022/10/2 12:21
 */
public class LeetCode777_SwapAdjacentLRInString {
    public boolean canTransform(String start, String end) {
        int length = start.length();
        int i = 0, j = 0;
        while (i < length && j < length) {
            while (i < length && start.charAt(i) == 'X') {
                i++;
            }
            while (j < length && end.charAt(j) == 'X') {
                j++;
            }
            if (i == length - 1 && j == length - 1) {
                return true;
            }
            if (i < length && j < length) {
                if (start.charAt(i) != end.charAt(j)) {
                    return false;
                }
                if (start.charAt(i) == 'L' && i < j) {
                    return false;
                }
                if (end.charAt(j) == 'R' && i > j) {
                    return false;
                }
            }
            i++;
            j++;
        }
        while (i < length) {
            if (start.charAt(i) != 'X') {
                return false;
            }
            i++;
        }
        while (j < length) {
            if (end.charAt(j) != 'X') {
                return false;
            }
            j++;
        }
        return i == j;
    }
}